package Negocio;
import java.util.*;

import dto.*;

public class Pedido {

	private boolean realizado;
	private List<Comanda> comandas;
	private Sucursal suc;
	
	public Pedido (Sucursal suc, List<ItemPedidoDTO> prod)
	{
		this.realizado = false;
		this.comandas = crearComanda (prod);
		this.suc = suc;
	}
	
	public boolean isRealizado() {
		return realizado;
	}

	public void setRealizado(boolean realizado) {
		this.realizado = realizado;
	}

	public List<Comanda> getComandas() {
		return comandas;
	}

	public Sucursal getSuc() {
		return suc;
	}
	
	public void agregarComanda (Comanda con)
	{
		comandas.add(con);
	}
	
	private List<Comanda> crearComanda(List<ItemPedidoDTO> productos)
	{
		ItemPedido item;
		List<Comanda> lista = new ArrayList<Comanda>();
		Area Aaux;
		
		for (int i =0 ;i<productos.size();i++)
		{
			Producto prod = crearProducto (productos.get(i).getPrducto());
			item = new ItemPedido (prod,productos.get(i).getCantidad());
			if (lista.size()==0)
			{
				Comanda con = new Comanda ();
				con.agregarItem(item);
				lista.add(con);
			}
			else
			{
				boolean existeComanda = false;
				for (int j= 0; j< lista.size() && existeComanda == false; j++)
				{
					Producto PAux = lista.get(j).getItems().get(1).getProd();
					Aaux = PAux.getArea();
					if (Aaux.getNombre().equalsIgnoreCase(prod.getArea().getNombre()))
					{
						lista.get(j).agregarItem(item);
						existeComanda = true;
					}
				}
				
				if (existeComanda == false)
				{
					Comanda con = new Comanda ();
					con.agregarItem(item);
					lista.add(con);
				}
			}	
		}
		return lista;
	}
	
	private Producto crearProducto (ProductoDTO prod)
	{
		//realizar
		return null;
	}
	
	public List<Comanda> comandaFacturan ()
	{
		List <Comanda> facturan = new ArrayList<Comanda>();
		
		for (int i = 0; i< comandas.size();i++)
		{
			if (comandas.get(i).isParaFacturar())
				facturan.add(comandas.get(i));
		}
		
		return facturan;
	}
	
	public void NoFacturarComanda ()
	{
		//yo no elimino un item o una comanda??
	}
}

	